home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / netbon.zip / NETQUE.INC < prev    next >
Text File  |  1992-10-02  |  19KB  |  744 lines

  1. {
  2.   NETQUE.INC 1.1
  3. }
  4. function AbortServicingQueueJob(QueueID : LongInt; JobNum : Word) : Byte;
  5. var
  6.   Request    : record
  7.                  Len    : Word;
  8.                  SubF   : Byte;
  9.                  QID    : LongInt;
  10.                  JobN   : Word;
  11.                end;
  12.   Reply      : Word;
  13.   NovRegs    : Registers;
  14.  
  15. begin
  16.   with Request do begin
  17.     Len    := SizeOf(Request) - 2;
  18.     SubF   := SubFAbortServicingJob;
  19.     QID    := NetWareSwapLong(QueueID);
  20.     JobN   := Swap(JobNum);
  21.   end;
  22.   Reply    := 0;
  23.   with NovRegs do begin
  24.     AH := BinderyFunc;
  25.     DS := Seg(Request);
  26.     SI := Ofs(Request);
  27.     ES := Seg(Reply);
  28.     DI := Ofs(Reply);
  29.     MsDos(NovRegs);
  30.     AbortServicingQueueJob := AL;
  31.   end;
  32. end;
  33.  
  34. function AttachQueueServerToQueue(QueueID : LongInt) : Byte;
  35.  
  36. var
  37.   Request    : record
  38.                  Len    : Word;
  39.                  SubF   : Byte;
  40.                  QID    : LongInt;
  41.                end;
  42.   Reply      : Word;
  43.   NovRegs    : Registers;
  44.  
  45. begin
  46.   with Request do begin
  47.     Len    := SizeOf(Request) - 2;
  48.     SubF   := SubFAttachQueServ;
  49.     QID    := NetWareSwapLong(QueueID);
  50.   end;
  51.   Reply    := 0;
  52.   with NovRegs do begin
  53.     AH := BinderyFunc;
  54.     DS := Seg(Request);
  55.     SI := Ofs(Request);
  56.     ES := Seg(Reply);
  57.     DI := Ofs(Reply);
  58.     MsDos(NovRegs);
  59.     AttachQueueServerToQueue := AL;
  60.   end;
  61. end;
  62.  
  63.  
  64. function ChangeQueueJobEntry(QueueID : LongInt;
  65.                              var JobEntry : JobEntryType) : Byte;
  66.  
  67.  
  68. var
  69.   Request    : record
  70.                  Len    : Word;
  71.                  SubF   : Byte;
  72.                  QID    : LongInt;
  73.                  Job    : JobEntryType;
  74.                end;
  75.   Reply      : Word;
  76.   NovRegs    : Registers;
  77.  
  78. begin
  79.   with Request do begin
  80.     Len    := SizeOf(Request) - 2;
  81.     SubF   := SubFChangeJobEntry;
  82.     QID    := NetWareSwapLong(QueueID);
  83.     Job    := JobEntry;
  84.   end;
  85.   Reply    := 0;
  86.   with NovRegs do begin
  87.     AH := BinderyFunc;
  88.     DS := Seg(Request);
  89.     SI := Ofs(Request);
  90.     ES := Seg(Reply);
  91.     DI := Ofs(Reply);
  92.     MsDos(NovRegs);
  93.     ChangeQueueJobEntry := AL;
  94.   end;
  95. end;
  96.  
  97.  
  98. function ChangeQueueJobPosition(QueueID : LongInt; JobNumber : Word;
  99.                                 NewPosition : Byte) : Byte;
  100.  
  101.  
  102. var
  103.   Request    : record
  104.                  Len    : Word;
  105.                  SubF   : Byte;
  106.                  QID    : LongInt;
  107.                  JobN   : Word;
  108.                  NewPos : Byte;
  109.                end;
  110.   Reply      : Word;
  111.   NovRegs    : Registers;
  112.  
  113. begin
  114.   with Request do begin
  115.     Len    := SizeOf(Request) - 2;
  116.     SubF   := SubFChangeJobPos;
  117.     QID    := NetWareSwapLong(QueueID);
  118.     JobN   := Swap(JobNumber);
  119.     NewPos := NewPosition;
  120.   end;
  121.   Reply    := 0;
  122.   with NovRegs do begin
  123.     AH := BinderyFunc;
  124.     DS := Seg(Request);
  125.     SI := Ofs(Request);
  126.     ES := Seg(Reply);
  127.     DI := Ofs(Reply);
  128.     MsDos(NovRegs);
  129.     ChangeQueueJobPosition := AL;
  130.   end;
  131. end;
  132.  
  133. function ChangeToClientRights(QueueID : LongInt; JobNumber : Word) : Byte;
  134. var
  135.   Request    : record
  136.                  Len    : Word;
  137.                  SubF   : Byte;
  138.                  QID    : LongInt;
  139.                  JobN   : Word;
  140.                end;
  141.   Reply      : Word;
  142.   NovRegs    : Registers;
  143.  
  144. begin
  145.   with Request do begin
  146.     Len    := SizeOf(Request) - SizeOf(Word);
  147.     SubF   := SubFChangeToClient;
  148.     QID    := NetWareSwapLong(QueueID);
  149.     JobN   := Swap(JobNumber);
  150.   end;
  151.   Reply    := 0;
  152.   with NovRegs do begin
  153.     AH := BinderyFunc;
  154.     DS := Seg(Request);
  155.     SI := Ofs(Request);
  156.     ES := Seg(Reply);
  157.     DI := Ofs(Reply);
  158.     MsDos(NovRegs);
  159.     ChangeToClientRights := AL;
  160.   end;
  161. end;
  162.  
  163. function CloseFileAndStartJob(QueueID : LongInt; JobNumber : Word) : Byte;
  164. var
  165.   Request    : record
  166.                  Len    : Word;
  167.                  SubF   : Byte;
  168.                  QID    : LongInt;
  169.                  JobN   : Word;
  170.                end;
  171.   Reply      : Word;
  172.   NovRegs    : Registers;
  173.  
  174. begin
  175.   with Request do begin
  176.     Len    := SizeOf(Request) - SizeOf(Word);
  177.     SubF   := SubFCloseAndStart;
  178.     QID    := NetWareSwapLong(QueueID);
  179.     JobN   := Swap(JobNumber);
  180.   end;
  181.   Reply    := 0;
  182.   with NovRegs do begin
  183.     AH := BinderyFunc;
  184.     DS := Seg(Request);
  185.     SI := Ofs(Request);
  186.     ES := Seg(Reply);
  187.     DI := Ofs(Reply);
  188.     MsDos(NovRegs);
  189.     CloseFileAndStartJob := AL;
  190.   end;
  191. end;
  192.  
  193. function CreateQueue(QueType : Word; QueName : ObjNameStr;
  194.                      DirectoryHandle : Byte; PathName : QueuePathType;
  195.                      var QueueID : LongInt) : Byte;
  196. var
  197.   Request : record
  198.               Len        : Word;
  199.               SubF       : Byte;
  200.               ObjT       : Word;
  201.               Buf        : Array[1..170] of Byte;
  202.             end;
  203.   Reply   : record
  204.               Len        : Word;
  205.               QID        : LongInt;
  206.             end;
  207.   NovRegs       : Registers;
  208.   Incr          : Word;
  209.   Index         : Byte;
  210. begin
  211.   with Request do begin
  212.     SubF   := SubFCreateQue;
  213.     ObjT   := Swap(QueType);
  214.     Index  := 1;
  215.     Incr   := Succ(Length(QueName));
  216.     Move(QueName,Buf[Index],Incr);
  217.     Inc(Index,Incr);
  218.     Buf[Index] := DirectoryHandle;
  219.     Inc(Index);
  220.     Incr := Succ(Length(PathName));
  221.     Move(PathName,Buf[Index],Incr);
  222.     Inc(Index,Incr);
  223.     Len := Index + 2;
  224.   end;
  225.   Reply.Len := SizeOf(LongInt);
  226.   with NovRegs do begin
  227.     AH := BinderyFunc;
  228.     DS := Seg(Request);
  229.     SI := Ofs(Request);
  230.     ES := Seg(Reply);
  231.     DI := Ofs(Reply);
  232.     MsDos(NovRegs);
  233.     CreateQueue := AL;
  234.   end;
  235.   QueueID := NetWareSwapLong(Reply.QID);
  236. end;
  237.  
  238. function CreateQueueJobAndFile(QueueID : LongInt;
  239.                                JobEntry : JobEntryType;
  240.                                var ReplyEntry : JobEntryType) : Byte;
  241.  
  242. {page 12-23}
  243. var
  244.   Request : record
  245.               Len      : Word;
  246.               SubF     : Byte;
  247.               QID      : LongInt;
  248.               Entry    : JobEntryType;
  249.             end;
  250.   Reply   : record
  251.               Len      : Word;
  252.               REntry   : JobEntryType;
  253.             end;
  254.   NovRegs       : Registers;
  255. begin
  256.   with Request do begin
  257.     Len     := SizeOf(Request) - SizeOf(Word);
  258.     SubF    := SubFCreateJobAndFile;
  259.     QID     := NetWareSwapLong(QueueID);
  260.     Entry   := JobEntry;
  261.   end;
  262.   Reply.Len := Ofs(Reply.Rentry.TextJobDesc) - Ofs(Reply.Rentry);
  263.   with NovRegs do begin
  264.     AH := BinderyFunc;
  265.     DS := Seg(Request);
  266.     SI := Ofs(Request);
  267.     ES := Seg(Reply);
  268.     DI := Ofs(Reply);
  269.     MsDos(NovRegs);
  270.     CreateQueueJobAndFile := AL;
  271.     if AL = 0 then
  272.       ReplyEntry := Reply.REntry;
  273.   end;
  274. end;
  275.  
  276. function DestroyQueue(QueueID : LongInt) : Byte;
  277.  
  278. var
  279.   Request    : record
  280.                  Len    : Word;
  281.                  SubF   : Byte;
  282.                  QID    : LongInt;
  283.                end;
  284.   Reply      : Word;
  285.   NovRegs    : Registers;
  286.  
  287. begin
  288.   with Request do begin
  289.     Len    := SizeOf(Request) - SizeOf(Word);
  290.     SubF   := SubFDestroyQue;
  291.     QID    := NetWareSwapLong(QueueID);
  292.   end;
  293.   Reply    := 0;
  294.   with NovRegs do begin
  295.     AH := BinderyFunc;
  296.     DS := Seg(Request);
  297.     SI := Ofs(Request);
  298.     ES := Seg(Reply);
  299.     DI := Ofs(Reply);
  300.     MsDos(NovRegs);
  301.     DestroyQueue := AL;
  302.   end;
  303. end;
  304.  
  305. function DetachQueueServerFromQueue(QueueID : LongInt) : Byte;
  306. var
  307.   Request    : record
  308.                  Len    : Word;
  309.                  SubF   : Byte;
  310.                  QID    : LongInt;
  311.                end;
  312.   Reply      : Word;
  313.   NovRegs    : Registers;
  314.  
  315. begin
  316.   with Request do begin
  317.     Len    := SizeOf(Request) - SizeOf(Word);
  318.     SubF   := SubFDetachFromQue;
  319.     QID    := NetWareSwapLong(QueueID);
  320.   end;
  321.   Reply    := 0;
  322.   with NovRegs do begin
  323.     AH := BinderyFunc;
  324.     DS := Seg(Request);
  325.     SI := Ofs(Request);
  326.     ES := Seg(Reply);
  327.     DI := Ofs(Reply);
  328.     MsDos(NovRegs);
  329.     DetachQueueServerFromQueue := AL;
  330.   end;
  331. end;
  332.  
  333. function FinishServicingQueueJob(QueueID : LongInt; JobNumber : Word;
  334.                                  Charge : LongInt) : Byte;
  335. var
  336.   Request    : record
  337.                  Len    : Word;
  338.                  SubF   : Byte;
  339.                  QID    : LongInt;
  340.                  JobN   : Word;
  341.                  Chrg   : LongInt;
  342.                end;
  343.   Reply      : Word;
  344.   NovRegs    : Registers;
  345.  
  346. begin
  347.   with Request do begin
  348.     Len    := SizeOf(Request) - SizeOf(Word);
  349.     SubF   := SubFFinishServicing;
  350.     QID    := NetWareSwapLong(QueueID);
  351.     JobN   := Swap(JobNumber);
  352.     Chrg   := Charge;
  353.   end;
  354.   Reply    := 0;
  355.   with NovRegs do begin
  356.     AH := BinderyFunc;
  357.     DS := Seg(Request);
  358.     SI := Ofs(Request);
  359.     ES := Seg(Reply);
  360.     DI := Ofs(Reply);
  361.     MsDos(NovRegs);
  362.     FinishServicingQueueJob := AL;
  363.   end;
  364. end;
  365.  
  366. function GetQueueJobList(QueueID : LongInt; var Jobs : QueueJobList) : Byte;
  367.  
  368. var
  369.   Request     : record
  370.                   Len    : Word;
  371.                   SubF   : Byte;
  372.                   ID     : LongInt;
  373.                 end;
  374.   Reply       : record
  375.                   Len    : Word;
  376.                   JobL   : QueueJobList;
  377.                   MaxJ   : Word;
  378.                 end;
  379.   NovRegs     : Registers;
  380.   I           : Word;
  381. begin
  382.   FillChar(Reply,SizeOf(Reply),Char(250));
  383.   Reply.Len := SizeOf(Reply) - 2;
  384.   with Request do begin
  385.     Len     := SizeOf(Request) - 2;
  386.     SubF    := SubFGetJobList;
  387.     ID      := NetWareSwapLong(QueueID);
  388.   end;
  389.   with NovRegs do begin
  390.     AH := BinderyFunc;
  391.     DS := Seg(Request);
  392.     SI := Ofs(Request);
  393.     ES := Seg(Reply);
  394.     DI := Ofs(Reply);
  395.     MsDos(NovRegs);
  396.     GetQueueJobList := AL;
  397.     if AL = 0 then
  398.       with Reply do begin
  399.         Jobs.NumJobs := Swap(JobL.NumJobs);
  400.         if Jobs.NumJobs > MaxQueueJobs then
  401.           Jobs.NumJobs := MaxQueueJobs;
  402.         for I := 1 to Jobs.NumJobs do
  403.           Jobs.JobList[I] := Swap(JobL.JobList[I]);
  404.       end;
  405.   end;
  406. end;
  407. function GetQueueJobFileSize(QueueID : LongInt;
  408.                              JobNumber : Word;
  409.                              var SizeOfFile : LongInt) : Byte;
  410.  
  411. var
  412.   Request     : record
  413.                   Len    : Word;
  414.                   SubF   : Byte;
  415.                   ID     : LongInt;
  416.                   JobN   : Word;
  417.                 end;
  418.   Reply       : record
  419.                   Len      : Word;
  420.                   QID      : QueueJobList;
  421.                   JN       : Word;
  422.                   FSize    : LongInt; {h-l}
  423.                 end;
  424.  
  425.   NovRegs     : Registers;
  426.   I           : Word;
  427.  
  428. begin
  429.   FillChar(Reply,SizeOf(Reply),0);
  430.   Reply.Len := SizeOf(Reply) - 2;
  431.   with Request do begin
  432.     Len     := SizeOf(Request) - 2;
  433.     SubF    := SubFGetJobFileSize;
  434.     ID      :=  NetWareSwapLong(QueueID);
  435.     JobN    := JobNumber;
  436.   end;
  437.   with NovRegs do begin
  438.     AH := BinderyFunc;
  439.     DS := Seg(Request);
  440.     SI := Ofs(Request);
  441.     ES := Seg(Reply);
  442.     DI := Ofs(Reply);
  443.     MsDos(NovRegs);
  444.     GetQueueJobFileSize := AL;
  445.   end;
  446.   SizeOfFile := NetWareSwapLong(Reply.FSize);
  447. end;
  448.  
  449. function ReadQueueCurrentStatus(QueueID : LongInt;
  450.                                 var QueueStatus : Byte;
  451.                                 var NumberOfJobs : Byte;
  452.                                 var NumberOfServers : Byte;
  453.                                 var ServerIDList : QueueServerIDList;
  454.                                 var StationList  : QueueStationList) : Byte;
  455.  
  456. var
  457.   Request     : record
  458.                   Len    : Word;
  459.                   SubF   : Byte;
  460.                   ID     : LongInt;
  461.                 end;
  462.   Reply       : record
  463.                   Len       : Word;
  464.                   ID        : LongInt;
  465.                   Status    : Byte;
  466.                   NumJobs   : Byte;
  467.                   NumServ   : Byte;
  468.                   ServerIDs : QueueServerIDList;
  469.                   Stations  : QueueStationList;
  470.                   MaxServs  : Byte;
  471.                 end;
  472.   NovRegs     : Registers;
  473.   I           : Word;
  474. begin
  475.   FillChar(Reply,SizeOf(Reply),Char(25));
  476.   Reply.Len := SizeOf(Reply) - 2;
  477.   with Request do begin
  478.     Len     := SizeOf(Request) - 2;
  479.     SubF    := SubFReadCurStatus;
  480.     ID      := NetWareSwapLong(QueueID);                    {!!.24}
  481.   end;
  482.   with NovRegs do begin
  483.     AH := BinderyFunc;
  484.     DS := Seg(Request);
  485.     SI := Ofs(Request);
  486.     ES := Seg(Reply);
  487.     DI := Ofs(Reply);
  488.     MsDos(NovRegs);
  489.     ReadQueueCurrentStatus := AL;
  490.     if AL = 0 then
  491.       with Reply do begin
  492.         QueueStatus      := Status;
  493.         NumberOfJobs     := NumJobs;
  494.         NumberOfServers  := NumServ;
  495.         ServerIDList     := ServerIDs;
  496.         StationList      := Stations;
  497.       end;
  498.   end;
  499. end;
  500.  
  501. function ReadJobEntry(QueueID : LongInt; JobNumber : Word;
  502.                       var JobEntry : JobEntryType) : Byte;
  503. var
  504.   Request     : record
  505.                   Len    : Word;
  506.                   SubF   : Byte;
  507.                   ID     : LongInt;
  508.                   Num    : Word;
  509.                 end;
  510.   Reply       : record
  511.                   Len       : Word;
  512.                   Entry     : JobEntryType;
  513.                 end;
  514.   NovRegs     : Registers;
  515.  
  516. begin
  517.   with Request do begin
  518.     Len    := SizeOf(Request) - 2;
  519.     SubF   := SubFReadJobEntry;
  520.     ID     := NetWareSwapLong(QueueID);
  521.     Num    := Swap(JobNumber);
  522.   end;
  523.   Reply.Len := SizeOf(Reply) - 2;
  524.   with NovRegs do begin
  525.     AH := BinderyFunc;
  526.     DS := Seg(Request);
  527.     SI := Ofs(Request);
  528.     ES := Seg(Reply);
  529.     DI := Ofs(Reply);
  530.     MsDos(NovRegs);
  531.     ReadJobEntry := AL;
  532.     if AL = 0 then begin
  533. (*
  534.       Reply.Entry.JobNumber := Swap(Reply.Entry.JobNumber);
  535. *)
  536.       Reply.Entry.JobType   := Swap(Reply.Entry.JobType);
  537.       JobEntry := Reply.Entry;
  538.     end;
  539.   end;
  540. end;
  541.  
  542. function ReadQueueServerStatus(QueueID : LongInt; ServerID : LongInt;
  543.                                ServerStation : Byte) : Byte;
  544.  
  545. var
  546.   Request     : record
  547.                   Len    : Word;
  548.                   SubF   : Byte;
  549.                   ID     : LongInt; {h-l}
  550.                   ServID : LongInt; {h-l}
  551.                   ServSt : Byte;
  552.                 end;
  553.   Reply       : record
  554.                   Len : Word;
  555.                   ServStatusRec : ServerStatusRecord;
  556.                 end;
  557.   NovRegs     : Registers;
  558.  
  559. begin
  560.   Reply.Len := SizeOf(Reply) - 2;
  561.   with Request do begin
  562.     Len    := SizeOf(Request) - 2;
  563.     SubF   := SubFReadQueServStatus;
  564.     ID     := NetWareSwapLong(QueueID);
  565.     ServID := ServerID;
  566.     ServSt := ServerStation;
  567.   end;
  568.   with NovRegs do begin
  569.     AH := BinderyFunc;
  570.     DS := Seg(Request);
  571.     SI := Ofs(Request);
  572.     ES := Seg(Reply);
  573.     DI := Ofs(Reply);
  574.     MsDos(NovRegs);
  575.     ReadQueueServerStatus := AL;
  576.   end;
  577. end;
  578.  
  579. function RemoveJobFromQueue(QueueID : LongInt; JobNumber : Word) : Byte;
  580. var
  581.   Request     : record
  582.                   Len    : Word;
  583.                   SubF   : Byte;
  584.                   ID     : LongInt;
  585.                   Num    : Word;
  586.                 end;
  587.   Reply       : Word;
  588.   NovRegs     : Registers;
  589.  
  590. begin
  591.   Reply := 0;
  592.   with Request do begin
  593.     Len    := SizeOf(Request) - 2;
  594.     SubF   := SubFRemJobFromQue;
  595.     ID     := NetWareSwapLong(QueueID);
  596.     Num    := Swap(JobNumber);
  597.   end;
  598.   with NovRegs do begin
  599.     AH := BinderyFunc;
  600.     DS := Seg(Request);
  601.     SI := Ofs(Request);
  602.     ES := Seg(Reply);
  603.     DI := Ofs(Reply);
  604.     MsDos(NovRegs);
  605.     RemoveJobFromQueue := AL;
  606.   end;
  607. end;
  608.  
  609. function RestoreQueueServerRights : Byte;
  610. var
  611.   Request : record
  612.               Len  : Word;
  613.               SubF : Byte;
  614.             end;
  615.   Reply   : Word;
  616.   NovRegs     : Registers;
  617.  
  618. begin
  619.   Reply := 0;
  620.   with Request do begin
  621.     Len    := SizeOf(Request) - 2;
  622.     SubF   := SubFChangeToServer;
  623.   end;
  624.   with NovRegs do begin
  625.     AH := BinderyFunc;
  626.     DS := Seg(Request);
  627.     SI := Ofs(Request);
  628.     ES := Seg(Reply);
  629.     DI := Ofs(Reply);
  630.     MsDos(NovRegs);
  631.     RestoreQueueServerRights := AL;
  632.   end;
  633. end;
  634.  
  635. function ServiceQueueJobAndOpenFile(QueueID : LongInt;
  636.                                     TargetJobType : Word;
  637.                                     var JobEntry : JobEntryType) : Byte;
  638. var
  639.   Request : record
  640.               Len    : Word;
  641.               SubF   : Byte;
  642.               QID    : LongInt;
  643.               JobT   : Word;
  644.             end;
  645.   Reply   : record
  646.               Len    : Word;
  647.               Entry  : JobEntryType;
  648.             end;
  649.   NovRegs : Registers;
  650.  
  651. begin
  652.   FillChar(Reply,SizeOf(Reply),0);
  653.   Reply.Len := SizeOf(Reply) - 2;
  654.   with Request do begin
  655.     Len    := SizeOf(Request) - 2;
  656.     SubF   := SubFServiceJob;
  657.     QID    := NetWareSwapLong(QueueID);
  658.     JobT   := TargetJobType;
  659.   end;
  660.   with NovRegs do begin
  661.     AH := BinderyFunc;
  662.     DS := Seg(Request);
  663.     SI := Ofs(Request);
  664.     ES := Seg(Reply);
  665.     DI := Ofs(Reply);
  666.     MsDos(NovRegs);
  667.     JobEntry := Reply.Entry;
  668.     ServiceQueueJobAndOpenFile := AL;
  669.   end;
  670. end;
  671.  
  672. function SetQueueCurrentStatus(QueueID : LongInt;
  673.                                QueueStatus : Byte) : Byte;
  674.  
  675. var
  676.   Request : record
  677.               Len    : Word;
  678.               SubF   : Byte;
  679.               QID    : LongInt;
  680.               QStat  : Byte;
  681.             end;
  682.   Reply   : Word;
  683.   NovRegs : Registers;
  684.  
  685. begin
  686.   Reply := 0;
  687.   with Request do begin
  688.     Len    := SizeOf(Request) - 2;
  689.     SubF   := SubFReadQueStatus;
  690.     QID    := NetWareSwapLong(QueueID);
  691.     QStat  := QueueStatus;
  692.   end;
  693.   with NovRegs do begin
  694.     AH := BinderyFunc;
  695.     DS := Seg(Request);
  696.     SI := Ofs(Request);
  697.     ES := Seg(Reply);
  698.     DI := Ofs(Reply);
  699.     MsDos(NovRegs);
  700.     SetQueueCurrentStatus := AL;
  701.   end;
  702. end;
  703. function SetQueueServerStatusRecord(QueueID : LongInt;
  704.                                     var StatusRec : ServerStatusRecord) : Byte;
  705.  
  706. var
  707.   Request : record
  708.               Len    : Word;
  709.               SubF   : Byte;
  710.               QID    : LongInt;
  711.               SRec   : ServerStatusRecord;
  712.             end;
  713.   Reply   : Word;
  714.   NovRegs : Registers;
  715.  
  716. begin
  717.   Reply := 0;
  718.   with Request do begin
  719.     Len    := SizeOf(Request) - 2;
  720.     SubF   := SubFSetStatusRec;
  721.     QID    := NetWareSwapLong(QueueID);
  722.     SRec   := StatusRec;
  723.   end;
  724.   with NovRegs do begin
  725.     AH := BinderyFunc;
  726.     DS := Seg(Request);
  727.     SI := Ofs(Request);
  728.     ES := Seg(Reply);
  729.     DI := Ofs(Reply);
  730.     MsDos(NovRegs);
  731.     SetQueueServerStatusRecord := AL;
  732.   end;
  733. end;
  734.  
  735. function JobSize(QueueID : LongInt; JobNumber : Word;
  736.                       var Size : LongInt) : Byte;
  737.   {-Returns the size of the data associate with queue QueueID and job
  738.     JobNumber}
  739. begin
  740.   JobSize := GetQueueJobFileSize(QueueID,JobNumber,Size);
  741.   Size := Size - SizeOf(JobEntryType);
  742. end;
  743.  
  744.